{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LightGBM模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from lightgbm import LGBMClassifier\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "import seaborn as sb\n",
    "from sklearn.metrics import roc_auc_score, plot_roc_curve, classification_report\n",
    "from matplotlib import pyplot as plt\n",
    "from yellowbrick.classifier.rocauc import roc_auc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = pd.read_csv('datasets/X.csv', index_col='id')\n",
    "X_t = pd.read_csv('datasets/X_t.csv', index_col='id')\n",
    "y = pd.read_csv('datasets/y.csv', index_col='id')\n",
    "y_t = pd.read_csv('datasets/y_t.csv', index_col='id')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 12 candidates, totalling 36 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=20; total time=   6.4s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=20; total time=   6.2s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=20; total time=   5.8s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=30; total time=   6.6s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=30; total time=   7.3s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=30; total time=   7.2s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=40; total time=   7.9s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=40; total time=   8.1s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=50, num_leaves=40; total time=   7.9s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=20; total time=   9.3s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=20; total time=   8.8s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=20; total time=   8.7s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=30; total time=  10.6s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=30; total time=  11.5s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=30; total time=  12.0s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=40; total time=  13.2s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=40; total time=  13.3s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=20, n_estimators=100, num_leaves=40; total time=  13.3s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=20; total time=   6.4s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=20; total time=   6.5s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=20; total time=   6.2s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=30; total time=   7.6s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=30; total time=   7.0s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=30; total time=   7.1s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=40; total time=   8.1s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=40; total time=   8.2s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=50, num_leaves=40; total time=   9.3s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=20; total time=  10.7s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=20; total time=   9.4s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=20; total time=   9.7s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=30; total time=  12.5s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=30; total time=  12.2s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=30; total time=  11.9s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=40; total time=  13.5s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=40; total time=  14.8s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] END min_child_samples=30, n_estimators=100, num_leaves=40; total time=  15.7s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=3, estimator=LGBMClassifier(),\n",
       "             param_grid={'min_child_samples': [20, 30],\n",
       "                         'n_estimators': [50, 100],\n",
       "                         'num_leaves': [20, 30, 40]},\n",
       "             verbose=2)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m = GridSearchCV(\n",
    "    LGBMClassifier(),\n",
    "    cv=3,\n",
    "    verbose=2,\n",
    "    param_grid={\n",
    "        \"num_leaves\": [20, 30, 40],\n",
    "        \"n_estimators\": [50, 100],\n",
    "        \"min_child_samples\": [20, 30]\n",
    "    }\n",
    ")\n",
    "m.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LGBMClassifier(num_leaves=40)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m.best_estimator_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\envs\\stats\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    }
   ],
   "source": [
    "lightgbm_model = m.best_estimator_.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.729158165385236"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "roc_auc_score(y_t, lightgbm_model.predict_proba(X_t)[:, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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0qWMHTu20G2ffPIJN9xwAyNHjmTkyJG88cYbBdtiY2MZPXo0o0aNYvjw4Xz77bcAfP3114gIq1evLvhsTk4Offr04V//+hcA6enpPProo4waNYoRI0YwduxYjhw5AsD5559fKuUaO3Ys2dnZxMfHc/nll/PQQw/xzDPPsH///jM63ttvv826desKlsePH8+wYcNO+czo0aPZvn17wXJWVhaDBg0qWP7iiy8YOXIko0ePZsSIESxduvSMYnn99de57rrrGDFiBGvXrj1lW1JSEqNHjy7406tXLyZNmkRmZiZ33XUXI0eO5JlnnuHgQWcixtdee41t27adURyn8+dN4EohIyuHf85ZT/0a1XlgoE32YkrHg9+5+GpN6T4qu657a567Kq7E+3322WesWrWKjz76iIiICHJycnjggQdYsGABAwYMoF69enz88ccAHDlyhCFDhnD11VcD0K5dO2bMmEGPHj0AmD9/PnXq1Ck49rhx4xgxYgSDBw8G4MMPP+SJJ57g5ZdfPsvSnnTiWC6Xi4EDB/Lwww+f8bESEhJQVe644w4Ajh07hsvlolOnTixdupQ+fU5PbvBrM2bMYOHChXz44YeEh4cTHx/PqFGjmDp1Kg0bNvQ7lg0bNrBs2TK+/PJLEhISuOeee5gyZUrB9saNGxf8XlatWsXLL7/M9ddfz8cff0zXrl3585//zEsvvcS7777L448/zk033cT999/Pu+++W8Jv5deqTAPw4tyNpGZmM35IdxrUjAh2OMaUus8++6yg8gcIDw/nlVdeISTk15MbZWRkULdu3YJtF154IQsWLCA/P5/Q0FBmzJjBlVdeCcC+fftITk4uqPzBuXK+9tprTznmsmXLeP3113G73Rw9epQXX3yRmJgY7r33XjIyMjh27Bhjx45lwIABPPLII+zevZvjx48zZswYhg0bxqBBg/jkk0946623OH78OK1atWLmzJmMHz+e6OhoHnvsMdLS0sjIyGDixImICBdffDHt2rWjffv2PProowWxTJo0iSFDhhQsz5w5k379+nHhhRfy6aef+tUAfP755zzyyCOEhzu9BS1btuSbb76hQYMGp3zujjvuIDMzs2C5ffv2jB8/vmDZ5XIxYMAAQkJCiImJIS8vj9TU1F81Im63mwkTJvDCCy8QFhbGTTfdRF5eHgApKSk0aeJMxFi3bl0iIyPZ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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_roc_curve(lightgbm_model, X_t, y_t)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:title={'center':'ROC Curves for LGBMClassifier'}, xlabel='False Positive Rate', ylabel='True Positive Rate'>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "visualizer = roc_auc(lightgbm_model, X, y, classes=[0, 1])\n",
    "visualizer.score(X_t, y_t)\n",
    "visualizer.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.70      0.68      0.69     59612\n",
      "           1       0.69      0.71      0.70     60388\n",
      "\n",
      "    accuracy                           0.69    120000\n",
      "   macro avg       0.69      0.69      0.69    120000\n",
      "weighted avg       0.69      0.69      0.69    120000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_t, lightgbm_model.predict(X_t)))"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "81ee8574ca4b949f1a68324cabe052a24810371303122f0dfbc70cb842d7a9dc"
  },
  "kernelspec": {
   "display_name": "Python 3.7.4 64-bit ('stats': conda)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
